const { exec } = require('child_process');
require('dotenv').config();

const host = process.env.DB_HOST || 'localhost';
const user = process.env.DB_USER || 'root';
const password = process.env.DB_PASSWORD || '123456';
const database = process.env.DB_NAME || 'store_db';

console.log('🔄 正在生成数据库dump文件...');

// 生成结构和数据的完整dump
const dumpCommand = `mysqldump -h ${host} -u ${user} -p${password} --single-transaction --routines --triggers ${database} > current_database_dump.sql`;

exec(dumpCommand, (error, stdout, stderr) => {
  if (error) {
    console.error('❌ 生成dump失败:', error);
    console.log('💡 请确保:');
    console.log('1. mysqldump 命令可用');
    console.log('2. 数据库连接信息正确');
    console.log('3. 用户有足够权限');
    return;
  }
  
  if (stderr) {
    console.log('⚠️  警告:', stderr);
  }
  
  console.log('✅ 数据库dump生成成功: current_database_dump.sql');
  console.log('📁 文件位置: ./current_database_dump.sql');
});

// 只生成结构的dump
const structureCommand = `mysqldump -h ${host} -u ${user} -p${password} --no-data --single-transaction --routines --triggers ${database} > current_database_structure.sql`;

exec(structureCommand, (error, stdout, stderr) => {
  if (error) {
    console.error('❌ 生成结构dump失败:', error);
    return;
  }
  
  console.log('✅ 数据库结构dump生成成功: current_database_structure.sql');
});